EN FR
EN FR




Bibliography




Bibliography


Section: New Results

Modular Termination of Large Programs

Participants : Christophe Alias, Guillaume Andrieu [LIFL] , Laure Gonnord [Compsys/LIFL] .

Program termination is an essential step in program verification. In  [16] , we showed how to check the termination of programs whose control can be summarized by an integer interpreted automaton. This was done by computing a ranking function (kind of schedule) by means of integer linear programming techniques. This approach, though powerful, clearly lacks scalability and cannot handle large programs.

We overcame this limitation by proceeding into two steps. First, we extract, from the program to be analyzed, the part useful for termination, i.e., the smaller program slice with the same control behavior. Then, we show that proving the termination of the whole program (slice) boils down to prove the termination of small programs, which can be handled by the technique of  [16] . Experimental results show that many large programs can be handled this way.

This work was part of the engineer internship of Guillaume Andrieu. Our technique has been implemented in a tool called SToP (see Section  5.12 ) and presented at the workshop TAPAS'12 [9] .